package com.victor.service;

import java.util.List;

import com.victor.entity.JMInfo;
import com.victor.entity.step.Schedule;
import com.victor.entity.step.Step;
import com.victor.entity.step.StepDetails;

public interface StepService {

	/**
	 * 查询现有的流程
	 * 
	 * @return
	 */
	public List<Step> getAllStep();

	/**
	 * 创建模板信息
	 * 
	 * @param step
	 * @return
	 */
	public boolean buildStep(Step step);

	/**
	 * 创建模板流程
	 * 
	 * @param stepDetails
	 */
	public boolean addStepDetails(StepDetails stepDetails);

	/**
	 * 批量删除流程
	 * 
	 * @param s_ids
	 * @return
	 */
	public boolean batchDeleteStep(int[] s_ids);
	
	/**
	 * 	查询该模板下流程详细表
	 * @param s_id
	 * @return
	 */
	public List<StepDetails> getStepDetailsByS_id(Integer s_id);
	
	/**
	 * 分配模板
	 */
	public boolean allotStep(Schedule schedule);
	
	/**
	 * 	分配模板成功修改加盟实体类状态1
	 * @return
	 */
	public boolean updateStatus(Integer id);
			
	/**
	 *  	查询待我审批
	 *  @param empid 员工id
	 */
	public List<Schedule> selfSPById(String empid);

	/**
	 *  查询 (我参与的审批)
	 *  @param empid 员工id
	 */
	public List<Schedule> selfSPJoinById(String empid);
	
	/**
	 * 查询加盟实体类
	 * @param id
	 * @return
	 */
	public JMInfo getInfoById(int id);
	
	/**
	 * 通过审批
	 * @return
	 */
	public boolean pass(Integer id);
	
	/**
	 * 	查询下一审批进度id
	 * @param sp_sequence
	 * @param info_id
	 * @return
	 */
	Integer selectIdBySpsequence(String sp_sequence,String info_id);
	
	/**
	 * 	将下一流程的状态1改为2
	 * @return
	 */
	public boolean updateNextPersonStatus(Integer id);
	
	/**
	 * 最后一个审批人就修改加盟实体类的状态2
	 * @param id
	 * @return
	 */
	public boolean updateJMinfoById(Integer id);
	
	
	
	/**
	 * 	拒绝审批
	 * @param id
	 * @param message
	 * @return
	 */
	public boolean no(Integer id,String not_pass_reason);

	/**
	 * 	拒绝审批，修改加盟实体类状态
	 * @param id
	 * @return
	 */
	public boolean noPassJminfo(Integer id);
	
	/**
	 * 	根据id获取流程模板	
	 * @param ids 流程表模板id
	 * @return
	 */
	public List<Step> getStepList(int[] ids);

//	/**
//	 * 查询待我审批 empid 登录员工的id 即员工adminid
//	 * 
//	 * @param empid
//	 * @return
//	 */
//	public List<JMInfo> needMeStep(String empid);
//
//	/**
//	 * 查询我参与的审批
//	 * 
//	 * @param empid
//	 * @return
//	 */
//	public List<JMInfo> joinMeStep(String empid);

}
